import axios from 'axios'
import {ElMessage} from "element-plus";
import {getTokenWithExpiration} from "@/components/cookie";

const service = axios.create({
    baseURL: "http://localhost:8888",
    timeout: 50000,
    withCredentials: false, // `withCredentials` 表示跨域请求时是否需要使用凭证
})

// 请求拦截器
service.interceptors.request.use(
    config => {
        // 添加请求头等前置处理
        let token = getTokenWithExpiration()
        if (token) {
            config.headers['token'] = token
        }
        return config
    },
    error => {
        // 请求错误处理
        console.log('Request Error:', error)
        return Promise.reject(error)

    }
)

// 响应拦截器
service.interceptors.response.use(
    response => {
        // 响应后处理
        if (response.status === 200 ) {
            if (response.data.code===-10005) {
                ElMessage.error("未登录，请登录后进行访问")
                router.push('/login')
            }else if (response.data.code===-10004) {
                ElMessage.error("没有这个权限")
                router.push('/nopermission')
            }
            return Promise.resolve(response.data)
        }
        else {
            return Promise.reject(response.data)
        }
    },
    error => {
        ElMessage.error("服务器出错了")
        return Promise.reject(error)
    }
)

export default service
